iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
Mobile Development

Flutter Developer Learning SwiftUI系列 第 25

Flutter Developer Learning SwiftUI. @State var lesson25 = "頁籤(下)"

  • 分享至 

  • xImage
  •  

Today Preview

Yes

1. 正文

"頁籤(上)"介紹的tab長在下面
而"頁籤(下)"介紹的tab卻長在上面XD

今天會介紹兩種TabView
一種是把tab放在上面,滑動就能換頁,這是非常常見的設計
另一種是無限分頁,常用在橫幅廣告輪播
兩種都是靠.tabViewStyle(.page)實現

1.

首先無限分頁的偷吃步就是給他一個超大的數字(江湖一點訣,點破不值錢)
他滑得完就算我們輸XD
正規的做法是左右兩邊各加兩頁換來換去(只加一頁滑得太快可能會有問題),比較麻煩,有興趣的同學可以Google一下

畫面上方先放個segment
而Binding就跟tabView共用即可連動

2.

接著下方是個大tabView
紅黃綠三頁
黃色那頁中間有個小tabView

既然是假的無限分頁
就不能用內建的PageControl
不然顯示多個點點就露餡了
所以要把page的indexDisplayMode設為 .never
然後自己疊個PageControl上去
index就用取餘處理

3.

.animation(.easeInOut, value: selectedPageIndex)

這行是為了讓我們點segment的時候
tabView也會有切換的動畫,不然很難看
而PageControl是抄網路上的(SwiftUI偷code又更容易了XD)
那我就不解釋了

2. 對照表

Android iOS Flutter SwiftUI
TabbedActivity UIPageViewController TabController TabView

Tomorrow Preview

賣個關子


跨界學習系列文章

Android版:iOS Developer Learning Android. Lesson 20 - Activity Gallery (不用再尋找或比較套件了,官方佛心內建常用UI Design Pattern)
Flutter版:iOS Developer Learning Flutter. Lesson16 底部導航與頁籤


https://github.com/mark33699/FDLS


上一篇
Flutter Developer Learning SwiftUI. @State var lesson24 = "頁籤(上)"
下一篇
Flutter Developer Learning SwiftUI. @State var lesson26 = "生命週期+本地儲存"
系列文
Flutter Developer Learning SwiftUI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言